/*
* org.js
* 组织架构微服务
* date: 2021-01-06
* version: 1.0.0-SNAPSHOT
*/
import {post} from "@/config/axios.js";

// 用户邀请
export const userInvite = {
    // 同意加入
    accept: (param= {}, config= {}) => post('/org/userInvite/accept', param, config),
    // 创建用户邀请
    create: (param= {}, config= {}) => post('/org/userInvite/create', param, config),
    // 删除邀请
    // 只有邀请中、申请中、已拒绝的可以删除
    delete: (param= {}, config= {}) => post('/org/userInvite/delete', param, config),
    // 批量导入用户邀请
    // 导入模板：http://cdn.ytud.net/office/%E9%82%80%E8%AF%B7%E7%94%A8%E6%88%B7%E6%A8%A1%E6%9D%BFv1.xlsx
    importExcel: (param= {}, config= {}) => post('/org/userInvite/importExcel', param, config),
    // 分页查询用户邀请
    listPaged: (param= {}, config= {}) => post('/org/userInvite/listPaged', param, config),
    // 拒绝加入
    reject: (param= {}, config= {}) => post('/org/userInvite/reject', param, config),
    // 短信邀请
    // 给用户发送邀请短信，通知用户填写用户信息加入计支宝
    send: (param= {}, config= {}) => post('/org/userInvite/send', param, config),
};
// 注册接口
export const reg = {
    // 查询部门列表
    // 邀请注册需要用到
    departs: (param= {}, config= {}) => post('/org/reg/departs', param, config),
    // 邀请信息
    inviteInfo: (param= {}, config= {}) => post('/org/reg/inviteInfo', param, config),
    // 邀请注册
    regByInvite: (param= {}, config= {}) => post('/org/reg/regByInvite', param, config),
    // 发送验证码
    sendVcode: (param= {}, config= {}) => post('/org/reg/sendVcode', param, config),
    // 补充用户信息
    setUserinfoByInvite: (param= {}, config= {}) => post('/org/reg/setUserinfoByInvite', param, config),
};
// 升级接口
export const upgrade = {
    // 同意升级
    // 升级回调，可能需要执行某些升级逻辑
    agree: (param= {}, config= {}) => post('/org/upgrade/agree', param, config),
    // 升级检测
    check: (param= {}, config= {}) => post('/org/upgrade/check', param, config),
    // 全员升级
    // 推送升级请求，而非直接升级
    pushAll: (param= {}, config= {}) => post('/org/upgrade/pushAll', param, config),
    // 指定单位升级
    // 向指定单位下的所有用户推送升级请求，而非直接升级
    pushComs: (param= {}, config= {}) => post('/org/upgrade/pushComs', param, config),
    // 指定区域升级
    // 向指定区域的用户推送升级请求，而非直接升级
    pushRegions: (param= {}, config= {}) => post('/org/upgrade/pushRegions', param, config),
    // 指定销售升级
    // 向指定销售人员的单位升级请求，而非直接升级
    pushSellers: (param= {}, config= {}) => post('/org/upgrade/pushSellers', param, config),
    // 指定用户升级
    // 推送升级请求，而非直接升级
    pushUsers: (param= {}, config= {}) => post('/org/upgrade/pushUsers', param, config),
    // 拒绝升级
    reject: (param= {}, config= {}) => post('/org/upgrade/reject', param, config),
};
// 命名接口
export const name = {
    // 单位名称
    coms: (param= {}, config= {}) => post('/org/name/coms', param, config),
    // 部门名称
    departs: (param= {}, config= {}) => post('/org/name/departs', param, config),
    // 部门名称(含单位名称)
    departsWithCom: (param= {}, config= {}) => post('/org/name/departsWithCom', param, config),
    // 职位名称
    duties: (param= {}, config= {}) => post('/org/name/duties', param, config),
    // 用户名称
    users: (param= {}, config= {}) => post('/org/name/users', param, config),
};
// 职位接口
export const duty = {
    // 创建职位
    create: (param= {}, config= {}) => post('/org/duty/create', param, config),
    // 删除职位
    // 1.已授权给用户则不允许删除， 2.强制删除可以删除授权给用户的职位
    delete: (param= {}, config= {}) => post('/org/duty/delete', param, config),
    // 禁用职位
    disable: (param= {}, config= {}) => post('/org/duty/disable', param, config),
    // 启用职位
    enable: (param= {}, config= {}) => post('/org/duty/enable', param, config),
    // 查找用户
    // 根据职位关系查找用户, 返回成员单位用户、项目成员、合同成员排序
    findUser: (param= {}, config= {}) => post('/org/duty/findUser', param, config),
    // 查询职位列表
    list: (param= {}, config= {}) => post('/org/duty/list', param, config),
    // 分页查询职位
    listPaged: (param= {}, config= {}) => post('/org/duty/listPaged', param, config),
    // 融合职位
    // 把多个职位融合成一个职位
    merge: (param= {}, config= {}) => post('/org/duty/merge', param, config),
    // 更新职位
    update: (param= {}, config= {}) => post('/org/duty/update', param, config),
};
// 认证接口
export const auth = {
    // 第三方认证
    // 第三方通过用户ID换取token, 跳转计支宝平台添加token参数
    loginBy3rd: (param= {}, config= {}) => post('/org/auth/loginBy3rd', param, config),
    // 账号密码登陆
    // 登陆成功会返回用户信息、单位信息和token，token是临时用户凭证，调用其它接口需要通过请求头传入；token失效服务端会返回HttpCode=401，此时前端需要让用户重新登陆；当后端判断token即将失效（但是还未失效）时，会通过响应头返回token，此时前端需要更新token；除了认证接口(/auth/**)之外，其它所有接口都需要传递token。
    loginByPwd: (param= {}, config= {}) => post('/org/auth/loginByPwd', param, config),
    // 手机验证码登陆
    // 登陆成功会返回用户信息、单位信息和token，token是临时用户凭证，调用其它接口需要通过请求头传入；token失效服务端会返回HttpCode=401，此时前端需要让用户重新登陆；当后端判断token即将失效（但是还未失效）时，会通过响应头返回token，此时前端需要更新token；除了认证接口(/auth/**)之外，其它所有接口都需要传递token。
    loginByVcode: (param= {}, config= {}) => post('/org/auth/loginByVcode', param, config),
    // 发送验证码
    sendVcode: (param= {}, config= {}) => post('/org/auth/sendVcode', param, config),
    // 切换单位
    // 切换单位成功会更换token，此时要求前端更换新token，其响应结构和登陆接口一致，处理逻辑也一致
    switchCom: (param= {}, config= {}) => post('/org/auth/switchCom', param, config),
    // 获取当前用户ID
    // 性能要优于/auth/userinfo接口，在无需其他用户信息的情况下，建议优先调用这个
    userid: (param= {}, config= {}) => post('/org/auth/userid', param, config),
    // 获取当前用户信息
    userinfo: (param= {}, config= {}) => post('/org/auth/userinfo', param, config),
};
// 行政区域
export const region = {
    // 查询全部行政区域
    // 树形结构
    getAll: (param= {}, config= {}) => post('/org/region/getAll', param, config),
    // 查询单位的区域
    // 查询单位所属的区域及其子级区域，树形结构
    getByCom: (param= {}, config= {}) => post('/org/region/getByCom', param, config),
    // 查询行政区域列表
    // 仅查询直接子节点
    list: (param= {}, config= {}) => post('/org/region/list', param, config),
};
// 部门接口
export const depart = {
    // 创建部门
    create: (param= {}, config= {}) => post('/org/depart/create', param, config),
    // 删除部门
    // 1.部门下没有员工时允许删除，2.子部门将连带删除，3.部门及其子部门关联的单位将一并删除
    delete: (param= {}, config= {}) => post('/org/depart/delete', param, config),
    // 查找用户
    // 根据人员组织架构关系查找用户, 返回成员排序按照部门置顶向下
    findUser: (param= {}, config= {}) => post('/org/depart/findUser', param, config),
    // 判断用户是否在部门下
    in: (param= {}, config= {}) => post('/org/depart/in', param, config),
    // 查询部门列表
    list: (param= {}, config= {}) => post('/org/depart/list', param, config),
    // 查询子部门ID
    // 仅支持查询一个单位的部门，无法跨单位和子公司查询
    listIds: (param= {}, config= {}) => post('/org/depart/listIds', param, config),
    // 查询父部门列表
    // 仅支持查询一个单位的部门，无法跨单位和子公司查询
    listParent: (param= {}, config= {}) => post('/org/depart/listParent', param, config),
    // 查询父部门ID
    // 仅支持查询一个单位的部门，无法跨单位和子公司查询
    listParentIds: (param= {}, config= {}) => post('/org/depart/listParentIds', param, config),
    // 移动部门
    move: (param= {}, config= {}) => post('/org/depart/move', param, config),
    // 更新部门
    update: (param= {}, config= {}) => post('/org/depart/update', param, config),
};
// 单位接口,代理单位,参建单位,用户邀请,废弃接口,业主单位,项目平台
export const company = {
    // 添加单位
    // 注意：必须指定父级单位，所有单位追溯父级，都会追溯到【亿通优地(北京)科技有限公司】
    create: (param= {}, config= {}) => post('/org/company/create', param, config),
    // 生成邀请码
    // 生成的邀请码用手机扫码后进入H5邀请注册页
    createInviteQrcode: (param= {}, config= {}) => post('/org/company/createInviteQrcode', param, config),
    // 生成邀请链接
    // 生成的邀请链接打开后进入PC端邀请注册页
    createInviteUrl: (param= {}, config= {}) => post('/org/company/createInviteUrl', param, config),
    // 删除单位
    delete: (param= {}, config= {}) => post('/org/company/delete', param, config),
    // 删除域名
    deleteDomain: (param= {}, config= {}) => post('/org/company/deleteDomain', param, config),
    // 导出业主单位
    // 导出符合条件的业主单位
    exportOwn: (param= {}, config= {}) => post('/org/company/exportOwn', param, config),
    // 获取单位详情
    get: (param= {}, config= {}) => post('/org/company/get', param, config),
    // 获取单位概要
    getBrief: (param= {}, config= {}) => post('/org/company/getBrief', param, config),
    // 获取域名
    getDomain: (param= {}, config= {}) => post('/org/company/getDomain', param, config),
    // 初始化单位
    // 注意：必须指定父级单位，所有单位追溯父级，都会追溯到【亿通优地(北京)科技有限公司】
    init: (param= {}, config= {}) => post('/org/company/init', param, config),
    // [废弃]查询单位列表
    // 已废弃，不同类型使用不同的接口
    list: (param= {}, config= {}) => post('/org/company/list', param, config),
    // 查询代理单位概要
    // 查询指定单位的代理单位或者调拨给该单位的代理单位，代理单位即伙伴单位
    listAgenBrief: (param= {}, config= {}) => post('/org/company/listAgenBrief', param, config),
    // 分页查询代理单位概要
    // 查询某个单位下的代理单位
    listAgenBriefPaged: (param= {}, config= {}) => post('/org/company/listAgenBriefPaged', param, config),
    // [废弃]分页查询可共享的代理单位
    // 用于查询可以给业主单位共享的代理单位，如果是已经共享了该业主的代理单位，则会被标记
    listAgenForShare: (param= {}, config= {}) => post('/org/company/listAgenForShare', param, config),
    // 分页查询代理单位
    // 查询指定单位的代理单位或者调拨给该单位的代理单位，代理单位即伙伴单位
    listAgenPaged: (param= {}, config= {}) => post('/org/company/listAgenPaged', param, config),
    // 查询代理单位省份列表
    // 不返回全部省份，仅返回满足条件的单位所在的省份列表
    listAgenProvince: (param= {}, config= {}) => post('/org/company/listAgenProvince', param, config),
    // 分页查询业主单位(全)
    // 查询全部业主单位，跨单位查询
    listAllOwnPaged: (param= {}, config= {}) => post('/org/company/listAllOwnPaged', param, config),
    // [废弃]查询单位概要列表
    // 已废弃，不同类型的单位需要使用不同的接口
    listBrief: (param= {}, config= {}) => post('/org/company/listBrief', param, config),
    // [废弃]分页查询单位概要
    // 废弃，不同类型的单位需要使用不同的接口
    listBriefPaged: (param= {}, config= {}) => post('/org/company/listBriefPaged', param, config),
    // 查询参建单位概要
    // 查询参与了业主项目的参建方单位列表
    listBudBrief: (param= {}, config= {}) => post('/org/company/listBudBrief', param, config),
    // 分页查询参建单位
    // 查询参与了业主项目的参建方单位列表
    listBudPaged: (param= {}, config= {}) => post('/org/company/listBudPaged', param, config),
    // 查询业主单位概要
    // 查询某个单位下的业主单位
    listOwnBrief: (param= {}, config= {}) => post('/org/company/listOwnBrief', param, config),
    // 分页查询业主单位概要
    // 查询某个单位下的业主单位
    listOwnBriefPaged: (param= {}, config= {}) => post('/org/company/listOwnBriefPaged', param, config),
    // 分页查询业主单位
    // 查询某个单位下的业主单位
    listOwnPaged: (param= {}, config= {}) => post('/org/company/listOwnPaged', param, config),
    // 查询业主单位省份列表
    // 不返回全部省份，仅返回满足条件的单位所在的省份列表
    listOwnProvince: (param= {}, config= {}) => post('/org/company/listOwnProvince', param, config),
    // [废弃]分页查询单位
    // 已废弃，不同类型使用不同的接口
    listPaged: (param= {}, config= {}) => post('/org/company/listPaged', param, config),
    // 查询项目平台概要
    // 查询单位下的项目平台
    listProdBrief: (param= {}, config= {}) => post('/org/company/listProdBrief', param, config),
    // 查询监管单位概要
    // 查询对某家单位进行监管的监管单位列表
    listProvBrief: (param= {}, config= {}) => post('/org/company/listProvBrief', param, config),
    // 查询监管单位省份列表
    // 不返回全部省份，仅返回满足条件的单位所在的省份列表
    listProvProvince: (param= {}, config= {}) => post('/org/company/listProvProvince', param, config),
    // [废弃]查询单位省份列表
    // 不返回全部省份，仅返回满足条件的单位所在的省份列表;已废弃，不同类型的单位需要使用不同的接口
    listProvince: (param= {}, config= {}) => post('/org/company/listProvince', param, config),
    // [废弃]查询用户的项目平台
    // 请使用/listProdBrief代替
    listUserProds: (param= {}, config= {}) => post('/org/company/listUserProds', param, config),
    // 更新单位
    update: (param= {}, config= {}) => post('/org/company/update', param, config),
    // 更新域名
    updateDomain: (param= {}, config= {}) => post('/org/company/updateDomain', param, config),
};
// 监管单位
export const watchCom = {
    // 创建监管单位
    // 创建监管单位
    create: (param= {}, config= {}) => post('/org/watchCom/create', param, config),
    // 分页查询全监管单位
    // 查询类型为监管的监管单位（注意不是查被监管的单位）
    listAllPaged: (param= {}, config= {}) => post('/org/watchCom/listAllPaged', param, config),
    // 查询监管单位概要
    // 根据父级监管单位查询子级监管单位、被监管单位、或(子级监管单位+被监管单位)概要； 此接口既可以查询监管单位又可以查询被监管单位
    listBrief: (param= {}, config= {}) => post('/org/watchCom/listBrief', param, config),
    // 分页查询监管单位
    // 查询单位下的监管单位（注意是查询下级监管单位，不是被监管的单位）
    listPaged: (param= {}, config= {}) => post('/org/watchCom/listPaged', param, config),
    // 分页查询可监管单位概要列表
    // 查询可以被监管的单位列表
    listWatchableBriefPaged: (param= {}, config= {}) => post('/org/watchCom/listWatchableBriefPaged', param, config),
};
// 用户接口
export const user = {
    // 创建用户
    create: (param= {}, config= {}) => post('/org/user/create', param, config),
    // 删除用户
    delete: (param= {}, config= {}) => post('/org/user/delete', param, config),
    // 获取用户详情
    get: (param= {}, config= {}) => post('/org/user/get', param, config),
    // 获取用户概要
    getBrief: (param= {}, config= {}) => post('/org/user/getBrief', param, config),
    // 获取交接事务
    // 获取用户离职需要交接的事务列表，如果存在需要交接的事务，则用户离职必须未该项事务指定交接人
    handovers: (param= {}, config= {}) => post('/org/user/handovers', param, config),
    // 用户离职
    leave: (param= {}, config= {}) => post('/org/user/leave', param, config),
    // 查询用户列表
    // 注意：除母子单位关系之外，不允许跨单位查询用户
    list: (param= {}, config= {}) => post('/org/user/list', param, config),
    // 分页查询用户(全)
    // 跨单位查询全部用户
    listAllPaged: (param= {}, config= {}) => post('/org/user/listAllPaged', param, config),
    // 查询用户概要
    listBrief: (param= {}, config= {}) => post('/org/user/listBrief', param, config),
    // 分页查询用户
    // 注意：除母子单位关系之外，不允许跨单位查询用户
    listPaged: (param= {}, config= {}) => post('/org/user/listPaged', param, config),
    // 分页查询乙方用户
    // 注意：不查询自身单位的用户，而是查询乙方单位的用户，目前仅支持查询参建单位的用户
    listSubPaged: (param= {}, config= {}) => post('/org/user/listSubPaged', param, config),
    // 查询可切换用户
    // 根据用户的手机号匹配所有账号，如果同一个账号存在于多个单位下，则显示多条
    listSwitch: (param= {}, config= {}) => post('/org/user/listSwitch', param, config),
    // 分页查询监管用户
    // 传comId：查询所有被监管和子级监管的用户（递归）；传comId+watchComId：查询某个被监管单位（或子级监管单位）的用户（不递归）
    listWatchPaged: (param= {}, config= {}) => post('/org/user/listWatchPaged', param, config),
    // 移动用户
    // 把用户从一个单位移动到另外一个单位
    move: (param= {}, config= {}) => post('/org/user/move', param, config),
    // 发送验证码
    // 用户更新密码验证
    sendVcode: (param= {}, config= {}) => post('/org/user/sendVcode', param, config),
    // 设置默认单位
    setDefault: (param= {}, config= {}) => post('/org/user/setDefault', param, config),
    // 更新用户
    update: (param= {}, config= {}) => post('/org/user/update', param, config),
    // 更新密码
    updatePwd: (param= {}, config= {}) => post('/org/user/updatePwd', param, config),
};
// 监管申请
export const watchApply = {
    // 同意监管申请
    // 被监管的单位同意监管申请
    accept: (param= {}, config= {}) => post('/org/watchApply/accept', param, config),
    // 添加监管申请
    // 操作单位向其它单位发起监管申请，已同意的和申请中的不会重复申请，已拒绝的会重发申请
    create: (param= {}, config= {}) => post('/org/watchApply/create', param, config),
    // 删除监管申请
    // 1.已同意的监管申请删除则表示不再监管该单位, 2.只有申请方才允许删除申请
    delete: (param= {}, config= {}) => post('/org/watchApply/delete', param, config),
    // 获取监管申请详情
    get: (param= {}, config= {}) => post('/org/watchApply/get', param, config),
    // 分页查询监管申请
    // 查询发出去的监管申请
    listPaged: (param= {}, config= {}) => post('/org/watchApply/listPaged', param, config),
    // 拒绝监管申请
    // 被监管的单位拒绝监管申请
    reject: (param= {}, config= {}) => post('/org/watchApply/reject', param, config),
    // 重复申请监管
    // 对已拒绝的监管再次发起监管申请，其它状态的监管申请则忽略
    retry: (param= {}, config= {}) => post('/org/watchApply/retry', param, config),
    // 同步监管申请
    // 操作单位向其它单位发起监管申请，已同意的和申请中的不会重复申请，已拒绝的会重发申请，同时可以批量删除一些不需要的监管申请
    sync: (param= {}, config= {}) => post('/org/watchApply/sync', param, config),
};

export default {userInvite, reg, upgrade, name, duty, auth, region, depart, company, watchCom, user, watchApply, }